﻿using System.Collections.Generic;
using System.Data;
using Onshi.POS.Modelo.Entidades;

namespace Onshi.POS.Repositorios
{
    public abstract class RepositorioBase<TEntidad, TIdentidad>
        where TEntidad : EntidadBase<TIdentidad>
    {
        #region Constructores

        public RepositorioBase()
            : base()
        {
        }

        #endregion

        #region Metodos

        protected abstract TEntidad FilaAEntidad(DataRow fila);

        public List<TEntidad> TablaALista(DataTable tabla)
        {
            var lista = new List<TEntidad>();
            foreach (DataRow fila in tabla.Rows)
                lista.Add(FilaAEntidad(fila));
            return lista;
        }

        #endregion
    }
}